#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//int fbnqs(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else if (n > 2)
//	{
//		return fbnqs(n - 1) + fbnqs(n - 2);
//	}
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	printf("%d", fbnqs(n));
//	return 0;
//}

//int fbnqs(int n)
//{
//	int a = 1;
//	int b = 1;
//	int c = 1;
//	if (n > 2)
//	{
//		for (int i = 0; i < n - 2; i++)
//		{
//			c = a + b;
//			a = b;
//			b = c;
//		}
//		
//	}
//	return c;
//}
//int main()
//{
//	int n = 0; 
//	scanf("%d", &n);
//	printf("%d", fbnqs(n));
//	return 0;
//}

//int Func1(int i)
//{
//	int count = 0;
//	if (i % 10 <= 9)
//	{
//		count++;
//		return count;
//	}
//	else
//	{
//		i /= 10;
//		count++;
//		Func(i);
//	}
//}
//int Func2(i)
//{
//	for (int j = 0; j < Func1(i); j++)
//	{
//
//	}
//}
//int main()
//{
//	for (int i = 0; i <= 100000; i++)
//	{
//		Func1(i);
//		printf("%d ", Func2(i));
//	}
//	return 0;
//}

//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	int sum = a + 11 * a + 111 * a + 1111 * a + 11111 * a;
//	printf("%d", sum);
//	return 0;
//}

//int Func(int n,int k)
//{
//	int sum = 1;
//	if (n == 1)
//		return 1;
//	else
//	{
//		if (k > 0)
//		{
//			sum = n* Func(n,k - 1);
//		}
//		else
//		{
//			return sum;
//		}
//	}
//}
//
//int main()
//{
//	int n = 0;
//	int k = 0;
//	scanf("%d %d", &n, &k);
//	printf("%d", Func(n,k));
//	return 0;
//}

//int DigitSum(int n)
//{
//
//	if (n > 9)
//	{
//		n /= 10;
//		DigitSum(n);
//		sum += n%10;
//	}
//	else
//	{
//		sum = n;
//	}
//	return sum;
//}
//int main()
//{
//	int n = 0;
//	int sum = 0;
//	scanf("%d", &n);
//	printf("%d", DigitSum(n));
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = 1;
//	for (int i = 1; i <= n; i++)
//	{
//		ret *= i;
//	}
//	printf("%d", ret);
//	return 0;
//}

//int Func(int n)
//{
//	if (n > 1)
//	{
//		
//		return n*Func(n-1);
//		n--;
//	}
//	else
//		return 1;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", & n);
//	printf("%d", Func(n));
//	return 0;
//}

//void Func(int n)
//{
//	if (n > 9)
//	{
//		Func(n/10);
//		printf("%d ", n % 10);
//	}
//	else
//		printf("%d ", n);
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	Func(n);
//	return 0;
//}

//int DigitSum(int n)
//{
//	int ret = 0;
//	if (n > 0)
//	{
//		
//		DigitSum(n / 10);
//		ret += (n % 10);
//	}
//
//	return ret;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int c = DigitSum(n);
//	printf("%d", c);
//	return 0;
//}

//void Func()
//{
//	int i = 0;
//	for (i = 0; i < 7; i++)
//	{
//		for (int j = 0; j < 7-i-1; j++)
//		{
//			printf(" ");
//		}
//		for (int j = 7 - i - 1; j < 7 + i; j++)
//		{
//			printf("*");
//		}
//		for (int j = 7+i; j < 13; j++)
//		{
//			printf(" ");
//		}
//		
//		printf("\n");
//	}
//	for (i = 5; i >=0; i--)
//	{
//		for (int j = 0; j < 7 - i - 1; j++)
//		{
//			printf(" ");
//		}
//		for (int j = 7 - i - 1; j < 7 + i; j++)
//		{
//			printf("*");
//		}
//		for (int j = 7 + i; j < 13; j++)
//		{
//			printf(" ");
//		}
//		printf("\n");
//	}
//}
//int main()
//{
//	Func();
//	return 0;
//}
#include <math.h>
void Func()
{
	int count = 0;
	int j = 0;
	for (int i = 0; i <= 100000; i++)
	{
		j = i;
		while (j)
		{
			j %= 10;
			count++;
		}
		j = i;
		int sum = 0;
		int a = 0;
		while (j)
		{
			a = j % 10;
			j /= 10;
			sum += pow(a, count);
		}
		if (i == sum)
		{
			printf("%d", i);
		}
	}
}
int main()
{
	Func();
	return 0;
}